---
sidebar_position: 1
slug: "/labs/lab1/UsefulInformation/LinuxCommands"
---

# Полезные консольные команды для Linux

[В большой шпаргалке по работе Linux](https://github.com/iu5git/linux-course/blob/master/Wiki.md#файлы-каталоги-права) есть в т.ч. набор очень полезных консольных команд для Linux, большинство из которых справедливо и для консоли MinGW, устанавливаемой вместе с Git-ом на Windows.

Они могут быть полезными при работе CMake-файлами и/или Git.

## Совсем коротко

- `pwd` (present working directory) - вывести путь до текущего каталога
- `ls` (list) - вывести список объектов в каталоге
- `cd` (change directory) - сменить рабочий каталог
- `mv` (move) - переместить объект фс
- `cp` (copy) - скопировать объект фс
- `rm` (remove) - удалить объект фс
- `mkdir` (make directory) - создать каталог
- `echo` - вывод аргументов на экран
- `cat` - вывод объекта (например, файла) на экран
- `less` - утилита для удобного просмотра больших текстовых файлов
- `sort` - утилита для сортировки
- `grep` - фильтрация строк по подстрокам
- `head` - вывести первые строки файла/ввода
- `tail` - вывести последние строки файла/ввода
- `kill` - послать сигнал процессу (`kill -9 $PID` - завершить процесс с PID)
- `./run.py` - запустить скрипт run.py из локальной директории
- `/usr/bin/run.py` - запустить скрипт из любой другой директории

## Pipeline (конвейер)

Перенаправить вывод команды `cmd1` на вход `cmd2`:

```bash
cmd1 | cmd2
```

Вертикальную черту называют обычно "pipe".

Из конвейеров можно создавать цепочки:
![Linux pipeline](./images/pipeline.png)

Рассмотрим пример:

- Выводим содержимое файла с помощью `cat`
- Передаем это утилите `grep` (`grep bmstu` - оставить только строки, содержащие `bmstu`)
- Далее передаем вывод утилите `sort` (`sort -u` - отсортировать в алфавитном порядке и оставить только уникальные значения)

```bash
cat file.txt | grep bmstu | sort -u
```

*P.S.* Да, делать `cat`, а потом `grep` не нужно, можно сразу `grep bmstu file.txt`, это для примера.
